Guard 语法¶
guard语句和if语句有点类似,都是根据其关键字之后的表达式的布尔值决定下一步执行什么。但与if语句不同的是,guard语句只会有一个代码块,不像if语句可以if else多个代码块。 guard语句判断其后的表达式布尔值为false时,才会执行之后代码块里的代码,如果为true,则跳过整个guard语句。 例如:
1 2 3 4 5 6 7 8 9 10 | func fooGuard(x: Int?) { guard x != nil else { // 变量不符合条件判断时,执行下面代码 print("nil") return } // 使用x print(x!.description) } fooGuard(x: 800) |
对非可选类型的变量这种用法也是奏效的:
1 2 3 4 5 6 7 8 9 | func fc() { let f : Int = 0 guard f>0 else { // 变量不符合条件判断时,执行下面代码 print("xxxxx nil") return } } fc() |